![]() |
![]() ![]() |
![]() |
![]()
Post
#21
|
|
Grupa: Zarejestrowani Postów: 40 Pomógł: 0 Dołączył: 19.08.2004 Skąd: Pruszków Ostrzeżenie: (0%) ![]() ![]() |
Pokombinowałem troszkę i...
1. Klasa statyczna nie może posiadać konstruktora (destruktor działa), więc nie jesteśmy w stanie kontrolować procesu tworzenia instancji klasy 2. Korzystając z klas statycznych możemy zapomnieć o polimorfizmie. Musimy przekazać instancje klasy do metody - w klasie statycznej nie tworzymy instancji Klasy statyczne dobrze się sprawdzają jako fabryki. |
|
|
![]()
Post
#22
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Pokombinowałem troszkę i... 1. Klasa statyczna nie może posiadać konstruktora (destruktor działa), więc nie jesteśmy w stanie kontrolować procesu tworzenia instancji klasy A po co chcesz tworzyć instancję klasy statycznej? (IMG:http://forum.php.pl/style_emoticons/default/blink.gif) |
|
|
![]()
Post
#23
|
|
Developer Grupa: Moderatorzy Postów: 2 844 Pomógł: 20 Dołączył: 25.11.2003 Skąd: Olkusz ![]() |
y3ti tłumaczy wam absurd jaki przedstawiliście, mianowicie:
"singleton to taki nie potrzebny bajer, lepsza klasa statyczna". Jak ktoś nie widzi różnicy, potrzeby to niech nie korzysta z singletona. Jest to jeden z najpopularniejszych wzorców i najczęściej stosowany. |
|
|
![]()
Post
#24
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 0 Dołączył: 14.06.2003 Skąd: Tomaszów Lubelski/Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Skoro nie widze róznicy to niech ktoś przedstawi róznice w praktyce, a nie tylko w teorii.
|
|
|
![]()
Post
#25
|
|
Grupa: Zarejestrowani Postów: 472 Pomógł: 7 Dołączył: 7.12.2005 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
I jeśli
Cytat Jest to jeden z najpopularniejszych wzorców i najczęściej stosowany. to dlaczego? (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
|
|
|
![]()
Post
#26
|
|
Grupa: Zarejestrowani Postów: 40 Pomógł: 0 Dołączył: 19.08.2004 Skąd: Pruszków Ostrzeżenie: (0%) ![]() ![]() |
Załóżmy, że mamy klasę DB służącą do obsługi bazy danych oraz klasę DB_Mysql służącą do obsługi bazy MySQL. W rzeczywistym systemie klasa DB była by pewnie abstrakcyjna, ale załóżmy, że nasza klasa ma jakąś funkcjonalność (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Mamy też funkcję, która wykonuje jakąś operacje na na bazie danych. Do tego potrzebny jest jej obiekt klasy DB. Funkcja nie wie z jakiego silnika będziemy korzystać, więc po prostu prosi o obiekt typu DB. Wersja statyczna:
php wywali nam błąd, ponieważ funkcja foo() oczekuje instancji obiektu DB. A teraz Singleton:
Tak na szybko, tylko taki przykład przyszedł mi do głowy (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#27
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 0 Dołączył: 14.06.2003 Skąd: Tomaszów Lubelski/Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Ok to takie pytanie. Do czego sie najbardziej przydają klasy statyczne?
|
|
|
![]()
Post
#28
|
|
Grupa: Zarejestrowani Postów: 40 Pomógł: 0 Dołączył: 19.08.2004 Skąd: Pruszków Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#29
|
|
Developer Grupa: Moderatorzy Postów: 2 844 Pomógł: 20 Dołączył: 25.11.2003 Skąd: Olkusz ![]() |
|
|
|
![]()
Post
#30
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
'Klasa statyczna' od Singletona rozni sie tylko (i az) tym ze nie jest obiektem, i inaczej sie zapisuje wywolania metod.
|
|
|
![]()
Post
#31
|
|
Grupa: Developerzy Postów: 823 Pomógł: 12 Dołączył: 18.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Na podstawie wzorca singletorn można stwożyć klasę rejestru, czyli zbiór konkretnych instancji klasy. Zazwyczaj złużą temu dwie metody:
Register() - rejestruje instancje klas Registry() - wywołuje instancje klas z biblioteki singletonów Singletony przechowywane są jako tablica w prywatnym statycznym atrybucie, jakoże w.w metody również są statyczne. Trochę kodu wyciągniętego z mojego FW...
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 1.09.2025 - 00:02 |